package com.ruoyi.oa.service;

import com.ruoyi.oa.domain.OaMessage;
import com.ruoyi.oa.domain.vo.OaMessageVo;
import com.ruoyi.oa.domain.bo.OaMessageBo;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.workflow.domain.SysMessage;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 消息管理Service接口
 *
 * @author ruoyi
 * @date 2023-07-31
 */
public interface IOaMessageService {

    /**
     * 查询消息管理
     */
    OaMessageVo queryById(String id);

    /**
     * 查询消息管理列表
     */
    TableDataInfo<OaMessageVo> queryPageList(OaMessageBo bo, PageQuery pageQuery);

    /**
     * 查询消息管理列表
     */
    List<OaMessageVo> queryList(OaMessageBo bo);

    public Integer scollList();

    /**
     * 获取本人最新的一条
     * @param type
     * @return
     */
    public OaMessageVo getLastOne(Integer type);
    /**
     * 新增消息管理
     */
    Boolean insertByBo(OaMessageBo bo);


    Boolean sendBatchMessage(List<OaMessage> messageList);

    /**
     * 修改消息管理
     */
    Boolean updateByBo(OaMessageBo bo);

    /**
     * 校验并批量删除消息管理信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    TableDataInfo<OaMessageVo> queryPage();

    boolean batchReadMessage(String type);

    boolean readMessage(Long id);

    /**
     * 查询所有已经验证的人的信息
     * @return
     */
    List<Map<String,Object>> getAllHasAuth(String deptId,String nickName);

    /**
     * 获取所有没有认证的人脸信息
     * @return
     */
    List<Map<String,Object>> getAllNotAuth(String deptId,String nickName);
}
